class PruebasController < ApplicationController
  
  before_filter :login_required
  
  # GET /pruebas
  # GET /pruebas.xml
  def index
    
    store_location
    
    @pruebas_confirmadas = Prueba.find_confirmed(:all)
    @pruebas_a_confirmar = Prueba.find_not_confirmed(:all)
    
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @pruebas_confirmadas + @pruebas_a_confirmar }
    end
  end

  # GET /pruebas/1
  # GET /pruebas/1.xml
  def show
    @prueba = Prueba.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @prueba }
    end
  end

  # GET /pruebas/new
  # GET /pruebas/new.xml
  def new
    unless params[:persona_id] then
      flash[:error] = "No especifi&oacute; persona para la clase de prueba."
      redirect_back_or_default :action=>'index'
    else
      @prueba = Prueba.new
      @prueba.instructor = current_user.instructor
      @prueba.persona_id = params[:persona_id]
    
      respond_to do |format|
        format.html # new.html.erb
        format.xml  { render :xml => @prueba }
      end  
    end
  end

  # GET /pruebas/1/edit
  def edit
    @prueba = Prueba.find(params[:id])
  end

  # POST /pruebas
  # POST /pruebas.xml
  def create
    @prueba = Prueba.new(params[:prueba])

    respond_to do |format|
      if @prueba.save
        flash[:success] = 'Clase de prueba creada.'
        format.html { redirect_to :action=>'pre_show', :controller=>'personas', :id=>@prueba.persona.id }
        format.xml  { render :xml => @prueba, :status => :created, :location => @prueba }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @prueba.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /pruebas/1
  # PUT /pruebas/1.xml
  def update
    @prueba = Prueba.find(params[:id])

    respond_to do |format|
      if @prueba.update_attributes(params[:prueba])
        flash[:success] = 'Clase de prueba modificada con &eacute;xito.'
        format.html { redirect_back_or_default :action=>'index' }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @prueba.errors, :status => :unprocessable_entity }
      end
    end
  end
  
  def confirmar
    @prueba = Prueba.find(params[:id])
    @prueba.confirmed = true
    respond_to do |format|
      if @prueba.save!
        flash[:success] = 'Clase de prueba confirmada.'
        format.html { redirect_back_or_default :action=>'index' }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @prueba.errors, :status => :unprocessable_entity }
      end
    end
  end

  def set_done
    @prueba = Prueba.find(params[:id])
    @prueba.done = true
    respond_to do |format|
      if @prueba.save!
        flash[:success] = 'Clase de prueba realizada.'
        format.html { redirect_back_or_default :action=>'index' }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @prueba.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /pruebas/1
  # DELETE /pruebas/1.xml
  def destroy
    @prueba = Prueba.find(params[:id])
    persona = @prueba.persona
    @prueba.destroy

    respond_to do |format|
      format.html { redirect_back_or_default( :controller=>'personas', :action=>'pre_show', :id=>persona) }
      format.xml  { head :ok }
    end
  end
end
